package com.atguigu.lease.web.admin.custom.converter;

import com.atguigu.lease.model.enums.ItemType;
import org.springframework.core.convert.converter.Converter;
import org.springframework.stereotype.Component;

/**
 * 自定义类型转换器
 *
 * @author Taeyang
 * @date 2025/3/14
 */
@Component
public class StringToItemTypeConverter implements Converter<String, ItemType> {
    @Override
    public ItemType convert(String code) {

        // 源转化器
        // if ("APARTMENT".equals(source)) {
        //     return ItemType.APARTMENT;
        // } else if ("ROOM".equals(source)) {
        //     return ItemType.ROOM;
        // }

        // 目标转换器
        // if ("1".equals(code)) {
        //     return ItemType.APARTMENT;
        // } else if ("2".equals(code)) {
        //     return ItemType.ROOM;
        // }

        // 高阶转换器
        // ItemType.values(): 获取全部枚举实例组成的数组
        for (ItemType value : ItemType.values()) {
            if (value.getCode().equals(Integer.valueOf(code))) {
                return value;
            }
        }
        throw new IllegalArgumentException("code非法");
    }
}
